<?php

require_once realpath (dirname (__FILE__) . '//..//..//..//pages.php');
require_once CLASS_DATABASE;
require_once CLASS_FORM;
require_once CLASS_SELECT;
require_once INC_FUNCTIONS;

function classe ($values) {
    
}

function distretto () {
    
}

function docente () {
    
}

function show ($table, $order_by = null, $values = null) {
    $group_by = null;
    $where = null;
    switch ($table) {
        case 'classe' :
            $fields = array (
                'classe.ID',
                'classe.nome AS Classe',
            );
            $tables = array ('classe');
            if (empty ($order_by)) {
                $order_by = 'classe.nome';
            }
            break;
        case 'distretto' :
            $fields = array (
                'distretto.ID',
                'distretto.nome AS Distretto',
            );
            $tables = 'distretto';
            break;
        case 'docente' :
            $fields = array (
                'docente.ID',
                'docente.cognome AS Cognome',
                'docente.nome AS Nome',
                'docente.data AS Data_di_Nascita',
                'docente.sesso AS Sesso',
                'docente.indirizzo AS Indirizzo',
                'docente.email AS E_Mail',
                'docente.citta AS Città',
                'docente.telefono AS Telefono',
                'docente.fax AS Fax'
            );
            $tables = array (
                'docente'
            );
            $group_by = 'docente.ID';
            if (empty ($order_by)) {
                $order_by = 'docente.Cognome, docente.Nome';
            }
            break;
        case 'indirizzo' :
            $fields = array (
                'indirizzo.ID',
                'indirizzo.nome AS Indirizzo'
            );
            $tables = array (
                'indirizzo'
            );
            if (empty ($order_by)) {
                $order_by = 'indirizzo.nome';
            }
            break;
        case 'intervento' :
            $fields = array (
                'intervento.ID',
                'tipo_intervento.nome AS Tipo_Intervento',
                'intervento.data AS Data',
                'intervento.ora AS Ora',
                'intervento.durata AS Durata',
                "CONCAT (studente.cognome, ' ', studente.nome) AS Studente",
                "CONCAT (docente.cognome, ' ', docente.nome) AS Docente",
                'materia.nome AS Materia',
                'ospedale.nome AS Ospedale',
                'reparto.nome AS Reparto',
                'ricovero.nome AS Ricovero'
            );
            $tables = array (
                'docente',
                'effettua',
                'intervento',
                'materia',
                'ospedale',
                'reparto',
                'ricovero',
                'studente',
                'tipo_intervento'
            );
            $where = 'intervento.IDtipo_intervento=tipo_intervento.ID AND effettua.IDstudente=studente.ID AND effettua.IDdocente=docente.ID AND effettua.IDintervento=intervento.ID AND effettua.IDospedale=ospedale.ID AND effettua.IDmateria=materia.ID AND effettua.IDreparto=reparto.ID AND effettua.IDricovero=ricovero.ID';
            if (empty ($order_by)) {
                $order_by = 'tipo_intervento.nome';
            }
            break;
        case 'materia' :
            $fields = array (
                'materia.ID',
                'materia.nome AS Materia'
            );
            $tables = array (
                'materia',
            );
            if (empty ($order_by)) {
                $order_by = 'materia.nome';
            }
            break;
        case 'ospedale' :
            $fields = array (
                'ospedale.ID',
                'ospedale.nome AS Nome',
                'ospedale.indirizzo AS Indirizzo',
                'ospedale.citta AS Città',
                'ospedale.telefono AS Telefono',
                'ospedale.fax AS Fax',
                'ospedale.email AS E_Mail',
                'distretto.nome Distretto'
            );
            $tables = array (
                'distretto',
                'ospedale'
            );
            $where = 'distretto.ID=ospedale.IDdistretto';
            break;
        case 'permesso' :
            $fields = array (
                'permesso.ID',
                'user.ID AS IDuser',
                'user.username AS User',
                'permesso.action AS Azione',
                'permesso.what'
            );
            $tables = array (
                'permesso',
                'possiede',
                'user'
            );
            $where = 'user.ID=possiede.IDuser AND permesso.ID=possiede.IDpermesso';
            if (empty ($order_by)) {
                $order_by = 'user.username, user.ID, permesso.action, permesso.what';
            }
            break;
        case 'reparto':
            $fields = array (
                'reparto.ID',
                'reparto.nome AS Reparto',
            );
            $tables = array (
                'reparto',
            );
            if (empty ($order_by)) {
                $order_by = 'reparto.nome';
            }
            break;
        case 'ricovero' :
            $fields = array (
                'ricovero.ID',
                'ricovero.nome AS Ricovero',
                'tipo_ricovero.nome AS Tipo',
                'ricovero.data AS Data'
            );
            $tables = array (
                'ricovero',
                'tipo_ricovero'
            );
            $where = 'ricovero.IDtipo_ricovero=tipo_ricovero.ID';
            if (empty ($order_by)) {
                $order_by = 'ricovero.nome, tipo_ricovero.nome';
            }
            break;
        case 'scuola' :
            $fields = array (
                'scuola.ID',
                'scuola.nome AS Nome',
                'distretto.nome AS Distretto',
                'scuola.indirizzo AS Indirizzo',
                'scuola.citta AS "Citt&agrave;"',
                'scuola.telefono AS Telefono',
                'scuola.fax AS Fax',
                'scuola.email AS "E Mail"'
            );
            $tables = array (
                'distretto',
                'scuola'
            );
            $where = 'scuola.IDdistretto=distretto.ID OR scuola.IDdistretto IS NULL';
            if (empty ($order_by)) {
                $order_by = 'scuola.nome, distretto.nome';
            }
            $group_by = 'scuola.ID';
            break;
        case 'studente' :
            $fields = array (
                'studente.ID',
                'studente.cognome AS Cognome',
                'studente.nome AS Nome',
                'studente.data AS Data_di_Nascita',
                'studente.indirizzo AS Indirizzo',
                'studente.telefono AS Telefono',
                'studente.email AS E_Mail',
                'studente.sesso AS Sesso',
                'classe.nome AS Classe',
                'scuola.nome AS Scuola',
                'indirizzo.nome AS "Indirizzo di Studio"'
            );
            $tables = array (
                'classe',
                'frequenta',
                'indirizzo',
                'scuola',
                'studente',
            );
            $where = 'frequenta.IDstudente=studente.ID AND classe.ID=frequenta.IDclasse AND scuola.ID=frequenta.IDscuola AND indirizzo.ID=frequenta.IDindirizzo';
            if (empty ($order_by)) {
                $order_by = 'studente.Cognome, studente.Nome';
            }
            break;
        case 'tables' :
            require_once VW_TABLES;
            exit ();
            break;
        case 'tipo_intervento':
            $tables = array ('tipo_intervento');
            $fields = array (
                'ID',
                'nome AS "Tipo Intervento"'
            );
            if (empty ($order_by)) {
                $order_by = 'tipo_intervento.nome';
            }
            break;
        case 'tipo_ricovero':
            $tables = array ('tipo_ricovero');
            $fields = array (
                'ID',
                'nome AS "Tipo Ricovero"'
            );
            break;
        case 'user':
            $tables = array ('user');
            $fields = array (
                'ID',
                'username AS User'
            );
            break;
        default :
            notify (MSG_INVALID_REQUEST);
            exit ();
            break;
    }
    if (isset ($where) && !empty ($where)) {
        if (isset ($values) && !empty ($values)) {
            if (is_integer ($values)) {
                $values = array ($values);
            }
            $where .= ' AND (';
            if (is_array ($values) && count ($values)) {
                foreach ($values as $value) {
                    $where .= " $table.ID=$value OR";
                }
                $where = substr ($where, 0, strlen ($where) - 2);
                $where .= ')';
            }
        }
    }
    /*$order_by = explode (' ', $order_by);
    if (count ($order_by) > 2) {
        $order_by[0] = '"' . $order_by[0];
        $last = count ($order_by) - 2;
        $order_by[$last] = $order_by[$last] . '"';
    }
    $order_by = implode(' ', $order_by);*///Doesn't work!
    $db = openConnection ();
    return $db->select ($tables, $fields, $where, $group_by, $order_by, null);
}

function indirizzo () {
    
}

function intervento () {
    
}

function materia () {
    
}

function ospedale () {
    
}

function permesso () {
    
}

function reparto () {
    
}

function ricovero () {
    
}

function scuola () {
    
}

function studente () {
    
}

function tipoIntervento () {
    
}

function tipoRicovero () {
    
}

function user () {
    
}
?>

